Docker Compose
compose.yaml (旧 docker-compose.yaml )がYAML形式の設定ファイル httpd, DB, App など個別にDockerに封じるのがいいらしい
Dockerのplugin形式(v2)に移行しているようで、独立コマンド型(v1)の入門が多めなので要注意か
docker-compose を docker compose と読み替えればだいたい動く
podman compose, podman-composeもある
Compose File リファレンス
Docker Compose を Linux に
# cd /usr/local/bin
該当するものをダウンロードする
x86_64 は環境別に読み替える RaspberryPi 5 aarch64 など 確認コマンド
# uname -m
aarch64
または
x86_64
# chmod +x docker-compose-x86_64
# ln -s docker-compose-x86_64 docker-compose
DOCKER_HOST または /run/docker.sock が適切にunix socket に繋がっていれば Docker でも互換環境でも動作する
Podman用に設定
podman-docker を使うと root では取り敢えず動くがuserでは動かないかも
podman-docker
podman-docker を入れるか DOCKER_HOST っぽい環境変数を指定すればよかったかなので podman-docker を使ってみる
/run/docker.sock などが /run/podman/podman.sock のシンボリックリンクになるとよい
# dnf install -y podman podman-docker
DOCKER_HOST を設定する場合
一般ユーザは podman-docker だけでは unix socket にたどりつけないので DOCKER_HOST を設定することになる
podman info で確認する
$ podman info --format '{{.Host.RemoteSocket.Path}}'
ユーザの場合
/run/user/1000/podman/podman.sock (IDは固有)
rootの場合
/run/podman/podman.sock
$ export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
これを .profile などの設定ファイルに入れておく
podman-docker , DOCKER_HOST 共通確認
podman.socket が有効になっていなければ有効にする
rootの場合
/run/podman/podman.sock がない
# systemctl enable --now podman.socket
ユーザの場合
/run/user/1000/podman/podman.sock がない (IDは固有)
# systemctl --user enable --now podman.socket
か?
podman compose として使えるのは Podman v4.7ぐらいから RaspberryPiのRasPi OS (bookworm) podman 4.3.1 では駄目だった
RaspberryPi ではしばらく docker-compose として使う